Correlation is a technique well known to those skilled in the art of developing character recognition methods. The process of recognizing an unknown character using correlation is comprised of the following steps: (1) acquiring a two dimensional array of pixels, (2) locating an unknown character in the two dimensional array, (3) computing the correlations between the unknown character and every member of a trained set of characters (otherwise known as a font), (4) recognizing the unknown character as the trained character with the highest associated correlation coefficient above a threshold.
The correlation between an unknown character and a trained character can be conveniently described mathematically using vector notation. That is, let the vector y denote the light values (relative scene reflectance, intensities, etc.) of the pixels of the unknown character to be recognized. That is, let EQU y=[y.sub.1, y.sub.2, . . . , y.sub.N ].sup.T ( 1)
where y.sub.i denotes the light value of the i-th pixel of the unknown character and .sup.T denotes the transpose operator. In this representation there are N pixels in the unknown character y. That is, the two dimensional array of pixels for the unknown character is represented as a one dimensional array by concatenating rows (or columns) into one vector.
In a similar manner, let x denote the vector of light values of a trained character from a font, i.e. EQU x=[x.sub.1, x.sub.2, . . . , x.sub.N ].sup.T ( 2)
where x.sub.i denotes the light value of the i-th pixel of the trained character x. For simplicity, it is assumed that both the unknown character and the trained characters have the same number of pixels, N. If this were not true, the two vectors can be made the same size by appropriately increasing/decreasing the size of the unknown character y to that of the trained character x by utilizing the surrounding pixels in the image.
With these definitions, the correlation R.sub.xy between the unknown character y and the trained character x can be written as ##EQU1## where the sum is over all N pixels.
According to the above description, R.sub.xy is computed for all M trained characters of the font {x.sub.0, x.sub.1, . . . , x.sub.M } and unknown character y is recognized as being equivalent to that trained character x.sub.i that results in the highest correlation score among all the scores calculated.
An additional condition for a match is that the highest correlation score (R.sub.xy).sub.max exceed some predetermined threshold (R.sub.xy).sub.thresh. Otherwise, the unknown character does not match any trained characters from the font.
The above describes the standard method of performing character recognition using correlation of the light value of pixels of an unknown character and trained characters from a font. The above method may not work well when trained characters from a font are highly correlated among themselves and measurement noise is significant. For example, consider the letters O and Q of a particular font. These two characters can be quite similar (highly correlated) to each other. Depending on the font type and magnification selected in capturing the image, the O may only be distinguished from the Q by the light value of one or two pixels. This implies that the correlation score, R.sub.OQ, will be high and that discriminating an O from a Q can be difficult. In the presence of high levels of noise associated with capturing the image (i.e. video noise, sampling artifacts, lighting and printing variations), it is possible that an incorrect decision will be made and an O will be mistaken for a Q. For example, this can occur when the unknown character is a Q and R.sub.OQ exceeds R.sub.QQ. In this case, the Q is incorrectly classified (recognized) as an O.
There are several obvious approaches to reducing these types of errors. These approaches include: (1) choosing a font such that the trained characters are as dissimilar as possible; (2) increasing the magnification to generate more pixels that aid in better discriminating among the trained characters of the font; (3) reducing the system level of noise. Unfortunately, it is not always possible to alter these conditions. That is: (1) the font type may be dictated by the application; (2) magnification may be fixed by other constraints; (3) the system noise level may not be easily lowered.